/**
 * 验证工具函数
 */

/**
 * 验证邮箱格式
 * @param {string} email - 邮箱地址
 * @returns {boolean} - 是否为有效邮箱
 */
const validateEmail = (email) => {
  const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
  return emailRegex.test(email);
};

/**
 * 验证是否为有效数字
 * @param {*} value - 待验证的值
 * @returns {boolean} - 是否为有效数字
 */
const validateNumber = (value) => {
  return !isNaN(parseInt(value)) && isFinite(value);
};

/**
 * 验证必填字段
 * @param {Object} obj - 包含字段的对象
 * @param {string[]} requiredFields - 必填字段数组
 * @returns {Object} - 验证结果
 */
const validateRequiredFields = (obj, requiredFields) => {
  const missingFields = requiredFields.filter(field => !obj[field] || obj[field].toString().trim() === '');
  
  if (missingFields.length > 0) {
    return {
      isValid: false,
      error: {
        error: '缺少必要参数',
        message: `${missingFields.join(', ')} 是必填字段`
      }
    };
  }
  
  return {
    isValid: true
  };
};

module.exports = {
  validateEmail,
  validateNumber,
  validateRequiredFields
};